Grundkurs SQL

2.5.1  LEFT JOIN

Ein linker äußerer JOIN nimmt alle Zeilen der linken Tabelle bei der Verknüpfung mit auf, auch diejenigen, deren Verknüpfungsfeld nur in einer der beiden Tabellen vorkommt. In diesem Fall werden die Felder der anderen Tabelle mit Nullwerten (das entspricht NULL) aufgefüllt.

Nun wollen wir eine Mitarbeiterliste mit Abteilungsnamen erstellen, in der alle, auch diejenigen ohne zugeordnete Abteilung aufgeführt sind. Wir können also hier keinen INNER JOIN verwenden. Wir nutzen hier einen linken äußeren JOIN. (Den äußeren JOIN gibt es in zwei Formen: für die linke und für die rechte der beiden verbundenen Tabellen. Der rechte äußeren JOIN wird später näher betrachtet.)

Im folgenden Beispiel werden alle Mitarbeiter und Abteilungen verknüpft und aufgelistet. Zu allen Mitarbeitern, die noch keiner Abteilung zugeordnet wurden, wird im Feld Abteilungsname der Wert NULL eingetragen. Wir benutzen dazu also den LEFT JOIN.

[21]SELECT vorname, name, abteilungsname
FROM   tbl_mitarbeiter
       LEFT JOIN tbl_abteilung
       ON tbl_mitarbeiter.abteilung_id = tbl_abteilung.abteilung_id

Bei einem LEFT JOIN werden alle Datensätze der Tabelle auf der linken Seite verwendet, hier im Beispiel also tbl_mitarbeiter. Diese werden dann – wenn ein passendes Gegenstück vorhanden ist – mit den Datensätzen der rechten Seite, hier im Beispiel also tbl_abteilung verknüpft.

Beachten Sie bitte auch, dass bei einem äußeren JOIN die Verknüpfung nur über die ON-, nicht aber über die WHERE-Anweisung erfolgen kann!